package com.github.prontera.domain;

import java.math.BigDecimal;
import java.time.OffsetDateTime;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.github.prontera.domain.enums.OrderRefundStatusEnum;
import com.github.prontera.domain.enums.PayChannelEnum;
import com.github.prontera.domain.enums.VipTypeEnum;
import com.github.prontera.model.BasicDomain;

import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.ToString;

/**
 * 
 * o_refund-退款管理
 *
 */
@ToString
@EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler","fieldHandler" }, ignoreUnknown = true)
public class OrderRefund extends BasicDomain{

	private static final long serialVersionUID = 1L;
    
	/**
	 * 订单编号
	 */
	@ApiModelProperty(value = "订单编号")
    private String tradeNo;
	
	/**
	 * 支付金额
	 */
	@ApiModelProperty(value = "支付金额")
    private BigDecimal amount;
	
	/**
	 * 创建时间
	 */
	@ApiModelProperty(value = "创建时间")
    private OffsetDateTime createTime;
	/**
	 * 退款状态,  0:退款中,1:退款成功,2:退款失败
	 */
	@ApiModelProperty(value = "退款状态,  0:退款中,1:退款成功,2:退款失败")
    private OrderRefundStatusEnum status;
	/**
	 * 备注
	 */
	@ApiModelProperty(value = "备注")
    private String reason;
	/**
	 *退款银行卡ID
	 */
	@ApiModelProperty(value = "退款银行卡ID")
	private Long bankCardId;
	
	/**
	 * 退款通道, 0:支付宝,1:微信
	 */
	@ApiModelProperty(value = "退款通道, 0:支付宝,1:微信")
    private PayChannelEnum payChannel;
	
	
	/**
	 * 类型
	 */
	@ApiModelProperty(value = "类型")
    private VipTypeEnum type;
	
	private String mobile;
	
	
	private Client client;
	
	private ClientBankCard bankCard;

	public Long getBankCardId() {
		return bankCardId;
	}

	public void setBankCardId(Long bankCardId) {
		this.bankCardId = bankCardId;
	}

	/**
	 * @return the mobile
	 */
	public String getMobile() {
		return mobile;
	}

	public Client getClient() {
		return client;
	}

	public void setClient(Client client) {
		this.client = client;
	}

	public ClientBankCard getBankCard() {
		return bankCard;
	}

	public void setBankCard(ClientBankCard bankCard) {
		this.bankCard = bankCard;
	}

	/**
	 * @param mobile the mobile to set
	 */
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}

	/**
	 * @return the type
	 */
	public VipTypeEnum getType() {
		return type;
	}

	/**
	 * @param type the type to set
	 */
	public void setType(VipTypeEnum type) {
		this.type = type;
	}


	public PayChannelEnum getPayChannel() {
		return payChannel;
	}

	public void setPayChannel(PayChannelEnum payChannel) {
		this.payChannel = payChannel;
	}

	/**
	 * @return the amount
	 */
	public BigDecimal getAmount() {
		return amount;
	}

	/**
	 * @param amount the amount to set
	 */
	public void setAmount(BigDecimal amount) {
		this.amount = amount;
	}

	public OrderRefund(){
    
    }
    
    public String getTradeNo() {
        return this.tradeNo;
    }
    
    public void setTradeNo(String tradeNo) {
        this.tradeNo = tradeNo;
    }
    public OffsetDateTime getCreateTime() {
        return this.createTime;
    }
    
    public void setCreateTime(OffsetDateTime createTime) {
        this.createTime = createTime;
    }
    public OrderRefundStatusEnum getStatus() {
        return this.status;
    }
    
    public void setStatus(OrderRefundStatusEnum status) {
        this.status = status;
    }
    public String getReason() {
        return this.reason;
    }
    
    public void setReason(String reason) {
        this.reason = reason;
    }
    
}
